package com.habdqn.easybuy.service;

import com.habdqn.easybuy.entity.Shop;

import java.util.List;

/**
 * (Shop)表服务接口
 *
 * @author Xing.Jiejian
 * @since 2020-12-01 16:50:51
 */
public interface ShopService {

    /**
     * 根据用户名查询购物车信息
     * @param userId 用户编号
     * @param isWithProduct 是否关联商品信息
     * @return 购物车记录集合
     */
    List<Shop> queryByUserId(int userId,boolean isWithProduct);

    /**
     *
     * @param ids
     * @return
     */
    List<Shop> queryByIds(String ids);

    /**
     *
     * @param id
     * @return
     */
    Shop queryById(int id);

    /**
     * 新增数据
     *
     * @param shop 实例对象
     * @return 实例对象
     */
    Shop insert(Shop shop);

    /**
     * 添加购物车记录
     *  1.需要校验，该用户是否有该商品的购物车记录
     *      1) 如果没有记录，则新增一条数据
     *      2) 如果有记录，则修改/更新原记录中的数量
     *
     * @param shop
     */
    void add(Shop shop);

    /**
     * 修改数据
     *
     * @param shop 实例对象
     * @return 实例对象
     */
    Shop update(Shop shop);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 添加对应shop的商品数量
     * @param shopId
     * @param number
     */
    void plusNumber(int shopId,int number);

    /**
     * 直接更新对应记录的数量
     * @param shopId
     * @param number
     */
    void updateNumber(int shopId,int number);

}